package com.project.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.CustomBean;
import com.project.service.ICustomService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("custom")
@Api(tags = "客户控制层")
public class CustomController {
    @Autowired
    private ICustomService customService;
    /**
     * 分页动态查询客户信息
     * 输入：页码，客户名称，经营范围
     * 处理：分页动态查询客户信息
     * 输出：分页对象
     * 客户信息：客户编号，客户名称，负责人，经营范围
     * @param pageNum
     * @param name
     * @param scope
     * @return
     */
    @ApiOperation(value = "分页动态查询客户信息")
    @GetMapping("cutFindByItem")
    public IPage<CustomBean> cutFindByItem(Integer pageNum, String name, String scope){
        return customService.cutFindByItem(pageNum, name, scope);
    };
    /**
     * 按id查询客户信息
     * 输入：客户编号
     * 处理：根据客户id，查询客户信息
     * 输出：客户对象
     * 客户信息：客户编号，客户名称，负责人，负责人电话，邮箱，办公地址，经营范围
     * @param customId
     * @return
     */
    @ApiOperation(value = "按id查询客户信息")
    @GetMapping("findById")
    public CustomBean findById(Integer customId){
        return customService.findById(customId);
    };
    /**
     * 按id修改客户信息
     * 输入：客户id，新负责人，新电话，经营范围
     * 处理：根据客户id，修改对应负责人和电话信息，经营范围
     * 输出：ok
     * @param customId
     * @param newHead
     * @param newTel
     * @param newScope
     */
    @ApiOperation(value = "按id修改客户信息")
    @PutMapping("updateById")
    public String updateById(Integer customId,String newHead,String newTel,String newScope){
        customService.updateById(customId, newHead, newTel, newScope);
        return "ok";
    };

    /**
     * 查看客户是否存在
     * 输入：客户名称
     * 处理：根据客户名称查询客户
     * 返回：ok/no
     * @param customName
     * @return
     */
    @ApiOperation(value = "查看客户是否存在")
    @GetMapping("findByName")
    public CustomBean findByName(String customName){
        return customService.findByName(customName);
    };

    /**
     * 添加客户
     * 输入：客户对象
     * 处理：添加客户对象
     * 输出：ok
     * 客户信息：客户编号，客户名称，负责人，负责人电话，邮箱，办公地址，经营范围
     * @param customBean
     */
    @ApiOperation(value = "添加客户")
    @PostMapping("add")
    public String add(@RequestBody CustomBean customBean){
        customService.add(customBean);
        return "ok";
    };

    /**
     * 查询所有客户
     * 输入：无
     * 处理：查询的有客户信息
     * 输出：客户集合
     * 客户信息：客户编号，客户名称
     * @return
     */
    @ApiOperation(value = "查询所有客户")
    @GetMapping("findAll")
    public List<CustomBean> findAll(){
        return customService.findAll();
    };
}
